#include"UdpServer.hpp"
#include"User.hpp"

using namespace UdpServerModule;
int main()
{
    std::shared_ptr<UserManager>um=std::make_shared<UserManager>();
    //我们先创建一个用户管理器对象，用来管理我们的用户
    std::unique_ptr<UdpServer> svr_ptr=std::make_unique<UdpServer>();//我们先创建一个服务器对象，并用智能指针管理它
    svr_ptr->Register(
       [&um](InetAddr& id){um->AddUser(id);}, // 绑定用户添加函数
       [&um](int sockfd,std::string &message){um->Router(sockfd,message);} ,// 绑定路由函数
       [&um](InetAddr& id){um->DelUser(id);}
    );
    //那我们是不是要先初始化一下我们的服务器对象呢？
    svr_ptr->InitServer(); //假设UdpServer类有一个InitServer方法来初始化服务器
    //初始化好了，我们是不是应该启动我们的服务端。由于服务端一般都是启动了不会停止的，所以我们可以使用while循环
    svr_ptr->Start();
}